package com.portal.managedbeans;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import com.portal.entities.Usuario;
import com.portal.facade.UsuarioFacade;

@SessionScoped
@ManagedBean
public class UsuarioMB {
	private Usuario usuario;

	@EJB
	private UsuarioFacade usuarioFacade;

	public Usuario getUsuario(){
		if(usuario == null){
			ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
			String nickUsuario = context.getUserPrincipal().getName().toUpperCase();

			usuario = usuarioFacade.findUsuarioByNick(nickUsuario);
		}

		return usuario;
	}

	public boolean isUsuarioOperacao(){
		return getRequest().isUserInRole("VAL_USER");
	}
	
	public boolean isUsuarioRelatorios(){
		return getRequest().isUserInRole("VAL_REPORT");
	}

	public String logOut(){
		getRequest().getSession().invalidate();
		return "/logoff.xhtml";
	}

	private HttpServletRequest getRequest() {
		return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
	}
}
